#ifndef USUARIO_H_
#define USUARIO_H_
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <cstdlib>
#include "Interesse.h"
#include "Livro.h"

using namespace std;
 /*!
 * \brief Entidade Usuario
 *
 * Obejto usuario pode ser utilizada com Clinte ou Funcionario
 * Guarda os dados de cliente e funcionario
 *
 */
class Usuario
{
private:
	long ID;    	//!< Id do Usuario
	string Login;   //!< String com login do sistema
	string Senha;
	string Nome;
	string CEP;
	string Endereco;
	string Complemento;
	string Telefone;

	vector<Interesse> interesses;
	vector<Livro> livros;

public:
	Usuario();
	virtual ~Usuario();

	vector<Interesse> GetInteresses();
	Interesse GetInteresse(int pos);
	void AdicionaInteresse(Interesse it);
	void GravaInteresses();
	void CarregaInteresses();

	vector<Livro> GetLivrosDeInteresses();
	Livro GetLivroDeInteresse(int pos);
	void AdicionaLivroDeInteresse(Livro li);
	void GravaLivrosDeInteresses();
	vector<long> CarregaLivrosDeInteresses();

	// Metodos de Acesso
	long GetID();
	void SetLogin( string l );
	void SetSenha( string s );
	void SetID( long id);
	string GetLogin();
};

#endif /*USUARIO_H_*/
